﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using HousingInfo.Library;

namespace NEWS.Admin
{
    public partial class EditCategory_Forums : System.Web.UI.Page
    {
        private static CategoryBO categorybo;
        private static SubTopicForumBO subtopicforumbo;
        private static string modeid = null ,modeadd_sub=null,modeback=null;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {                
                modeid = Request.QueryString["id"];
                modeadd_sub = Request.QueryString["addsub"];
                modeback = Request.QueryString["back"];
                if (modeid != null)//mode sửa chuyên mục
                {
                    categorybo = CategoryBO.GetCategoryBO(Convert.ToInt32(modeid));
                    getsubcategory(categorybo.CategoryID);
                    txtmachuyenmuc.Text = categorybo.CategoryID.ToString();
                    txttenchuyenmuc.Text = categorybo.CategoryName;
                    isActive.Checked = categorybo.IsActive;
                    btnAdd.Visible = false;
                    if(modeadd_sub!=null)//Mode thêm chủ đề(thêm con)
                    {
                        btnUpdate.Visible = false;
                        btnDel.Visible = false;
                        pnChuDe.Visible = true;
                        txtMaChuDe.Visible = false;
                        lbMaChuDe.Visible = false;
                        isActive.Enabled = false;
                        btnUpdateChuDe.Visible = false;
                        btnThemChuDe.Visible = true;
                        txtTenChuDe.Focus();
                        txttenchuyenmuc.Enabled = false;                         
                    }
                    else//Mode sửa chủ đề
                    {
                        btnUpdate.Visible = true;
                        btnDel.Visible = true;                      
                    }
                }
                else//Mode thêm chuyên mục(thêm cha)
                {
                    btnDel.Visible = false;
                    btnUpdate.Visible = false;
                    lbmachuyenmuc.Visible = false;
                    txtmachuyenmuc.Visible = false;
                    btnAdd.Visible = true;
                }
            }
        }

        private void getsubcategory(int cateid)
        {
            //Lấy tất cả các chủ đề thuộc chuyên mục hiển thị vào ListBox
            listChuDe.DataSource = SubTopicForumBOList.GetSubTopicForumBOList(cateid);
            listChuDe.DataBind();
        }

        protected void btnThemChuDe_Click(object sender, EventArgs e)
        {
            if (txtmachuyenmuc.Text == "")//Nếu mã chuyên mục rỗng thì hiển thị thông báo ngược lại thì sẽ thêm chủ đề vào chuyên mục vừa mới thêm
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success", "alert('Mã chuyên mục không tồn tại !!!')", true);
                return;
            }
            try//Thực hiện thêm
            {
                subtopicforumbo = SubTopicForumBO.NewSubTopicForumBO();
                subtopicforumbo.CategoryID = Convert.ToInt32(txtmachuyenmuc.Text);
                subtopicforumbo.SubTopicForumName = txtTenChuDe.Text;
                subtopicforumbo.SubTopicDescription = txtmotachude.Text;
                subtopicforumbo.IsActive = isactiveChuDe.Checked;
                subtopicforumbo.Save();
                messagedetail.Text = "Thêm thành công";
                getsubcategory(Convert.ToInt32(txtmachuyenmuc.Text));
            }
            catch {
                messagedetail.Text = "Thêm thất bại";
            }
        }

        protected void btnUpdateChuDe_Click(object sender, EventArgs e)
        {
            subtopicforumbo = SubTopicForumBO.GetSubTopicForumBO(Convert.ToInt32(txtMaChuDe.Text));
            subtopicforumbo.SubTopicForumName = txtTenChuDe.Text;
            subtopicforumbo.SubTopicDescription = txtmotachude.Text;
            subtopicforumbo.IsActive = isactiveChuDe.Checked;
            try
            {
                subtopicforumbo.Save();
                messagedetail.Text = "Cập nhật thành công";
            }
            catch {
                messagedetail.Text = "Cập nhật thất bại";
            }
            getsubcategory(Convert.ToInt32(txtmachuyenmuc.Text));//Thêm xong chủ đề thì hiển thị chủ đề đó vào ListBox
        }

        protected void btnUpdate_Click(object sender, EventArgs e)//Sửa chuyên đề(cha)
        {
            int categoryid = Convert.ToInt32(txtmachuyenmuc.Text);
            categorybo.CategoryName=txttenchuyenmuc.Text;
            categorybo.IsActive = isActive.Checked;
            try
            {
                categorybo.Save();
                message.Text = "Cập nhật thành công !";
            }
            catch
            {
                message.Text = "Cập nhật thất bại !";
            }
        }

        protected void btnDel_Click(object sender, EventArgs e)//Xóa chuyên mục
        {
            int categoryid = Convert.ToInt32(txtmachuyenmuc.Text);
            //Kiểm tra tất cả các chủ đề thuộc chuyên mục có còn tồn tại hay không
            if (SubTopicForumBOList.CheckCategoryInSubTopicForum(categoryid))
            {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success", "alert('Bạn phải xóa các chủ đề thuộc chuyên mục này trước !!!')", true);
                return;
            }
            try
            {
                CategoryBO.DeleteCategoryBO(categoryid);
                Response.Redirect("Categories.aspx?Mode=DienDan&save=del");
            }
            catch {
                message.Text = "Xóa thất bại";
            }
        }

        protected void btnAdd_Click(object sender, EventArgs e)//Thực hiện thêm chuyên mục
        {
            CategoryBO categorybo = CategoryBO.NewCategoryBO();
            categorybo.CategoryName = txttenchuyenmuc.Text;
            categorybo.IsActive = isActive.Checked;
            categorybo.IsHousingCategory = false;
            categorybo.IsLanguage = false;
            categorybo.IsNewsCategory = false;
            categorybo.IsTopicForum = true;
            try
            {
                categorybo.Save();
                message.Text = "Thêm thành công";
                Response.Redirect("Categories.aspx?Mode=DienDan&save=complete");
            }
            catch
            {
                message.Text = "Thêm thất bại";
            }
        }

        protected void btnImageThemChuDe_Click(object sender, ImageClickEventArgs e)
        {
            pnChuDe.Visible = true;
            txtMaChuDe.Visible = false;
            lbMaChuDe.Visible = false;
            btnUpdateChuDe.Visible = false;
            btnThemChuDe.Visible = true;
            messagedetail.Text = "";
            txtTenChuDe.Text = "";
            txtmotachude.Text = "";
        }

        protected void btnImageXoaChuDe_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                pnChuDe.Visible = false;
                //Thực hiện xóa tất cả các tin theo chủ đề
                ForumNewsBOList.DeleteAllForumsNews_BySubcateID(Convert.ToInt32(listChuDe.SelectedItem.Value));
                SubTopicForumBO.DeleteSubTopicForumBO(Convert.ToInt32(listChuDe.SelectedItem.Value));
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success", "alert('Xóa Thành Công')", true);
                getsubcategory(Convert.ToInt32(txtmachuyenmuc.Text));               
                return;
            }
            catch {
                ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Success", "alert('Xóa Thất Bại')", true);
                return;
            }
        }

        protected void btnImageSuaChuDe_Click(object sender, ImageClickEventArgs e)
        {
            pnChuDe.Visible = true;
            txtMaChuDe.Visible = true;
            lbMaChuDe.Visible = true;
            subtopicforumbo = SubTopicForumBO.GetSubTopicForumBO(Convert.ToInt32(listChuDe.SelectedItem.Value));
            txtMaChuDe.Text = subtopicforumbo.SubTopicForumID.ToString();
            txtTenChuDe.Text = subtopicforumbo.SubTopicForumName;
            txtmotachude.Text = subtopicforumbo.SubTopicDescription;
            isactiveChuDe.Checked = subtopicforumbo.IsActive;
            btnUpdateChuDe.Visible = true;
            btnThemChuDe.Visible = false;
        }

        protected void btnTroVe_Click(object sender, EventArgs e)
        {
            if (modeback == "forum")
            {
                Response.Redirect("Forums.aspx");
            }
            else Response.Redirect("Categories.aspx?Mode=DienDan");
        }
    }
}
